Copy trait
変数代入時のsemanticsがcopy semanticsに変わる
docs
定義
code:rs
pub trait Copy: Clone { }
Copy traitを実装できる条件
/mrsekut-book-4297105594/287 (7-6 コピーセマンティクス)
条件1.その型(構造体や列挙型)のすべてのフィールドの型がCopy トレイトを実装している。
条件2.その型自身とすべてのフィールドの型がデストラクタ (Drop トレイト)を実装していない。
Drop traitを実装していないこと
ヒープ領域を使用するデータ型、たとえばBox<T>型、Vec<T> 型、String 型はデストラクタを持つため、フィールドにそれらの型を持つときはCopy トレイトは実装不可となる
destructorあったらダメなんだmrsekut.icon
条件3.その型自身がClone トレイト(std::clone::Clone)を実装している
Clone traitを実装していること
/mrsekut-book-4297105594/287 (7-6 コピーセマンティクス)
/mrsekut-book-4873118557/307 (13.4 Copy)